package vn.edu.saigontech.ncms.service;

import java.util.Collection;
import java.util.Date;

import vn.edu.saigontech.ncms.model.enumeration.AttendanceStatus;
import vn.edu.saigontech.ncms.model.studying.Attendance;
import vn.edu.saigontech.ncms.service.impl.AttendanceServiceImpl;
import vn.edu.saigontech.ncms.vo.AttendanceReportItem;

public interface AttendanceService extends GenericService<Attendance, Long> {
	
	static final AttendanceService INSTANCE = new AttendanceServiceImpl();
	
	Attendance add(Long offeringMemberId, Date date, AttendanceStatus status, String comment);
	
	Attendance edit(Long id, Date date, AttendanceStatus status, String comment);
	
	boolean deleteAndFlush(Long id);
	
	Attendance findByOfferingMemberIdAndDate(Long offeringMemberId, Date date);
	
	Collection<AttendanceReportItem> reportAttendance(Long offeringId);
}